<?php
namespace app\admin\controller\index;
use think\Request;
use app\admin\server\index\Admin as AdminServer;
use app\admin\common;
use think\facade\Session;
use think\facade\View;
use app\admin\ControllerBase;
use app\admin\server\system\Department;

/**
 * @title 管理员帐号及密码
 * 
 */
class Admin extends ControllerBase{
	protected $request;
	public static $server;
    public function __construct(request $request)
    {
    	$this->REQUEST = $request;
        self::$s_server=new AdminServer($request);
    }
    
    /**
     * @title 首页
     * @is_header 1
     * @return string code - [0成功][201失败]
     * @return array data - 当不是第一次登陆时此数组下面有以下参数
     * @return string data.last_date - 上次登陆年月日[注第一次登陆没有此数据]
     * @return string data.week - 上次登陆所属星期
     * @return string data.last_hours - 上次登陆时分秒
     */
    public function index(){
    	$this->requestLog(__function__, $this->REQUEST->param(), '首页');
    	return $this->commonFunction(__function__);
    }
    
    /**
     * @title 查询用户拥有的菜单权限
     * @is_header 1
     * @return string code - [0成功][201失败]
     * @return string data.id - 菜单Id
     * @return string data.menu_name - 菜单名称
     * @return array data.child - 存在代表有下级下级和上级参数一样。递归进行显示
     */
    public function selectMenu(){
    	$this->requestLog(__function__, $this->REQUEST->param(), '查询用户菜单权限');
    	return $this->commonFunction(__function__);
    }
    
    /**
     * @title 获取员工列表
     * @is_header 1
     * @param int page 1 页数
     * @param int limit 15 每页数量
     * @param string search_name 123 搜索值:姓名/帐号
     * @return string code - [0成功][201失败]
     * @return string id - 编号
     * @return string username - 用户名
     * @return string account - 登陆帐号
     * @return string status - 状态[1开启][0关闭]
     * @return string sex - [1女][2男]
     * @return string remark - 备注
     * @return string department_name 部门名称/岗位名称
     * @return string last_update_admin -  最后更新人
     * @return string last_update_time - 最后更新时间
     */
    public function select(){
    	$this->requestLog(__function__, $this->REQUEST->param(), '获取员工列表');
    	return $this->commonFunction(__function__);
    }
    
    /**
     * @title 更新员工状态
     * @is_header 1
     * @param int id 2 需要更新的用户id
     * @param int status 1 需要变更的状态[1开启][0关闭]
     * @return string code - [0成功][201失败]
     */
    public function updateAdminStatus(){
    	$this->requestLog(__function__, $this->REQUEST->param(), '更新员工状态');
    	$checkFlag = $this->checkVailDate(\app\admin\validate\System::class, __function__);
        if ($checkFlag == false) {
            return common::return_json($checkFlag, $this->ERROR, $this->CODE);
        }
    	return $this->commonFunction(__function__);
    }
    
    /**
     * @title 编辑员工
     * @is_header 1
     * @param int id 14 员工id
     * @param string username 梁龙 员工姓名
     * @param string account 18583220363 登陆用户名(这个不允许更改后台会自动删除传过来的这个值)
     * @param string sex 1 性别[1女][2男]
     * @param string status 1 状态[1开启][0关闭]
     * @param string department_id  1 所属岗位
     * @param string remark 256 备注信息
     * @return string code - [0成功][201失败]
     */
    public function editAdmin(){
    	$this->requestLog(__function__, $this->REQUEST->param(), '编辑员工');
    	$checkFlag = $this->checkVailDate(\app\admin\validate\System::class, __function__);
        if ($checkFlag == false) {
            return common::return_json($checkFlag, $this->ERROR, $this->CODE);
        }
    	return $this->commonFunction(__function__);
    }
    /**
     * @title 查询详情
     * @param string id - 员工Id
     * @return string username - 姓名
     * @return string account - 帐号
     * @return string department_id - 岗位Id
     * @return string sex - 0未知1女2男
     * @return string remark - 备注 
     * @return string status 状态(1：开启；0：关闭)
     */
    public function findAdmin(){
    	return $this->commonFunction(__function__);
    }
    /**
     * @title 删除员工数据
     * @is_header 1
     * @param int id 2 员工Id
     * @return string code - [0成功][201失败]
     */
    public function deleteAdmin(){
    	$this->requestLog(__function__, $this->REQUEST->param(), '编辑员工');
    	$checkFlag = $this->checkVailDate(\app\admin\validate\System::class, __function__);
        if ($checkFlag == false) {
            return common::return_json($checkFlag, $this->ERROR, $this->CODE);
        }
    	return $this->commonFunction(__function__);
    }
    
    
    /**
     * @title 添加员工
     * @is_header 1
     * @param string username 梁龙 员工姓名
     * @param string account 18583220363 登陆用户名
     * @param string sex 1 性别[1女][2男]
     * @param string status 1 状态[1开启][0关闭]
     * @param string department_id  1 所属岗位
     * @param string remark 256 备注信息
     * @return string code - [0成功][201失败]
     */
    public function addAdmin(){
    	$this->requestLog(__function__, $this->REQUEST->param(), '添加员工');
    	$checkFlag = $this->checkVailDate(\app\admin\validate\System::class, __function__);
        if ($checkFlag == false) {
            return common::return_json($checkFlag, $this->ERROR, $this->CODE);
        }
    	return $this->commonFunction(__function__);
    }
    
    /**
     * @title 重置密码
     * @is_header 1
     * @param int ids 1,2,3 需要重置密码的id
     * @return string code - [0成功][201失败]
     */
    public function resetPasswd(){
    	$this->requestLog(__function__, $this->REQUEST->param(), '重置密码');
    	
    	$checkFlag = $this->checkVailDate(\app\admin\validate\System::class, __function__);
        if ($checkFlag == false) {
            return common::return_json($checkFlag, $this->ERROR, $this->CODE);
        }
    	return $this->commonFunction(__function__);
    }
    
    /**
     * @title 修改密码
     * @is_header 1
     * @param string oldPasswd 123456 旧密码
     * @param string newPasswd 123456 新密码
     * @return string code - [0成功][201失败]
     */
    public function setPasswd()
    {
    	$this->requestLog(__function__, $this->REQUEST->param(), '修改密码');
    	$checkFlag = $this->checkVailDate(\app\admin\validate\System::class, __function__);
        if ($checkFlag == false) {
            return common::return_json($checkFlag, $this->ERROR, $this->CODE);
        }
    	return $this->commonFunction(__function__);
    }
    
}